home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Art / P / PhotoShopDev.cpt / PhotoShopDev / Acq-Think C 4.0 / AcquireInterface.h next >
Text File  |  1990-02-02  |  4KB  |  90 lines

  1. /*
  2.     File: AcquireInterface.h
  3.  
  4.     Copyright 1990 by Thomas Knoll.
  5.  
  6.     This file describes version 3 of Photoshop's Acquisition module interface.
  7. */
  8.  
  9. /* Operation selectors */
  10.  
  11. #define acquireSelectorAbout    0
  12. #define acquireSelectorStart    1
  13. #define acquireSelectorContinue 2
  14. #define acquireSelectorFinish    3
  15. #define acquireSelectorPrepare    4
  16.  
  17. /* Image modes */
  18.  
  19. #define acquireModeBitmap        0
  20. #define acquireModeGrayScale    1
  21. #define acquireModeIndexedColor 2
  22. #define acquireModeRGBColor     3
  23. #define acquireModeCMYKColor    4
  24. #define acquireModeHSLColor     5
  25. #define acquireModeHSBColor     6
  26. #define acquireModeMultichannel 7
  27.  
  28. /*    Error return values. The plug-in module may also return standard Macintosh
  29.     operating system error codes, or report its own errors, in which case it
  30.     can return any positive integer. */
  31.  
  32. #define acquireBadParameters    -30000    /* "a problem with the acquisition module interface" */
  33. #define acquireNoScanner        -30001    /* "there is no scanner installed" */
  34. #define acquireScannerProblem    -30002    /* "a problem with the scanner" */
  35.  
  36. typedef unsigned char AcquireLUT [256];
  37.  
  38. typedef struct AcquireRecord {
  39.  
  40.     long        serialNumber;        /* Photoshop's serial number, to allow
  41.                                        copy protected plug-in modules. */
  42.     ProcPtr     abortProc;            /* The plug-in module may call this no-argument
  43.                                        BOOLEAN function (using Pascal calling
  44.                                        conventions) several times a second during long
  45.                                        operations to allow the user to abort the operation.
  46.                                        If it returns TRUE, the operation should be aborted
  47.                                        (and a positive error code returned). */
  48.     ProcPtr     progressProc;        /* The plug-in module may call this two-argument
  49.                                        procedure (using Pascal calling conventions)
  50.                                        periodically to update a progress indicator.
  51.                                        The first parameter (type LONGINT) is the number
  52.                                        of operations completed; the second (type LONGINT)
  53.                                        is the total number of operations. */
  54.  
  55.     long        maxData;            /* Maximum number of bytes that should be
  56.                                        passed back at once, plus the size of any
  57.                                        interal buffers. The plug-in may reduce this
  58.                                        value in the acquireSelectorPrepare routine. */
  59.  
  60.     short        imageMode;            /* Image mode */
  61.     Point        imageSize;            /* Size of image */
  62.     short        depth;                /* Bits per sample, currently must be 1 or 8 */
  63.     short        planes;             /* Samples per pixel */
  64.     Fixed        imageHRes;            /* Pixels per inch */
  65.     Fixed        imageVRes;            /* Pixels per inch */
  66.     AcquireLUT    redLUT;             /* Red LUT, only used for Indexed Color images */
  67.     AcquireLUT    greenLUT;            /* Green LUT, only used for Indexed Color images */
  68.     AcquireLUT    blueLUT;            /* Blue LUT, only used for Indexed Color images */
  69.  
  70.     Ptr         data;                /* A pointer to the returned image data. The
  71.                                        plug-in module is now responsible for freeing
  72.                                        this buffer (this is a change from previous
  73.                                        versions). Should be set to NIL when
  74.                                        all the image data has been returned. */
  75.     Rect        theRect;            /* Rectangle being returned */
  76.     short        loPlane;            /* First plane being returned */
  77.     short        hiPlane;            /* Last plane being returned */
  78.     short        colBytes;            /* Spacing between columns */
  79.     long        rowBytes;            /* Spacing between rows */
  80.     long        planeBytes;         /* Spacing between planes (ignored if only one
  81.                                        plane is returned at a time) */
  82.  
  83.     Str255        filename;            /* Document file name */
  84.     short        vRefNum;            /* Volume reference number, or zero if none */
  85.     Boolean     dirty;                /* Changes since last saved flag. The plug-in may clear
  86.                                        this field to prevent prompting the user when
  87.                                        closing the document. */
  88.  
  89.     } AcquireRecord, *AcquireRecordPtr;
  90.